<?php

class FormularioDeEndereco extends Model{

	/*******************
	 * ATRIBUTOS
	 *******************/

	private $pais;
	private $estado;
	private $cidade;
	private $rua;
	private $numero;
	private $complemento;
	private $bairro;
	private $cep;
	private $camposPreenchidos;
	private $endereco;
	private $idEndereco;

	/*******************
	 * CONSTRUTOR
	 *******************/

	public function FormularioDeEndereco($endereco = null){
		$this->pais = "";
		$this->estado = "";
		$this->cidade = "";
		$this->rua = "";
		$this->numero = "";
		$this->complemento = "";
		$this->bairro = "";
		$this->cep = "";
		$this->idEndereco = 0;
		$this->camposPreenchidos = array();
		if($endereco != null){
			$this->carregarDadosDoFormulario($endereco);
		}
	}

	/*******************
	 * METODOS
	 *******************/

	public function definirCampoPreenchido($nomeDoCAmpo, $valorDoCampo){
		$this->camposPreenchidos[$nomeDoCAmpo] = $valorDoCampo;
	}

	public function obterCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return $this->camposPreenchidos[$nomeDoCampo];
		}
		else{
			return "";
		}
	}

	public function isCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return true;
		}
		else{
			return false;
		}
	}

	//Repreencher o formulario em caso de carregamento do formulario, seja pela session ou pelo Banco de Dados
	private function carregarDadosDoFormulario($endereco){
		$this->endereco = $endereco;
		
		$idEndereco = $this->endereco->getIdEndereco();
		$pais = $this->endereco->getPais();
		$estado = $this->endereco->getEstado();
		$cidade = $this->endereco->getCidade();
		$rua = $this->endereco->getRua();
		$numero = $this->endereco->getNumero();
		$complemento = $this->endereco->getComplemento();
		$bairro = $this->endereco->getBairro();
		$cep = $this->endereco->getCep();
		
		if($pais != null || $pais != ""){
			$this->definirCampoPreenchido("Pais", $pais);
		}
		
		if($estado != null || $estado != ""){
			$this->definirCampoPreenchido("Estado", $estado);
		}
		
		if($cidade != null || $cidade != ""){
			$this->definirCampoPreenchido("Cidade", $cidade);
		}
		
		if($rua != null || $rua != ""){
			$this->definirCampoPreenchido("Endereco", $rua);
		}
		
		if($numero != null || $numero != ""){
			$this->definirCampoPreenchido("NumeroDaCasa", $numero);
		}
		
		if($complemento != null || $complemento != ""){
			$this->definirCampoPreenchido("Complemento", $complemento);
		}
		
		if($bairro != null || $bairro != ""){
			$this->definirCampoPreenchido("Bairro", $bairro);
		}
		
		if($cep != null || $cep != ""){
			$this->definirCampoPreenchido("Cep", $cep);
		}
		if($idEndereco != null){
			$this->definirCampoPreenchido("IdEndereco", $idEndereco);
		}
	}
	
	//Tentativa de definir os campos já preenchidos pelo usuário em caso de erro ou qualquer outra necessidade
	public function recarregarDadosDoFormulario(){
		$idEndereco = $_POST['IdEndereco'];
		$pais = $_POST['Pais'];
		$estado = $_POST['Estado'];
		$cidade = $_POST['Cidade'];
		$rua = $_POST['Endereco'];
		$numero = $_POST['NumeroDaCasa'];
		$complemento = $_POST['Complemento'];
		$bairro = $_POST['Bairro'];
		$cep = $_POST['Cep'];
		
		if($pais != null || $pais != ""){
			$this->definirCampoPreenchido("Pais", $pais);
		}
		
		if($estado != null || $estado != ""){
			$this->definirCampoPreenchido("Estado", $estado);
		}
		
		if($cidade != null || $cidade != ""){
			$this->definirCampoPreenchido("Cidade", $cidade);
		}
		
		if($rua != null || $rua != ""){
			$this->definirCampoPreenchido("Endereco", $rua);
		}
		
		if($numero != null || $numero != ""){
			$this->definirCampoPreenchido("NumeroDaCasa", $numero);
		}
		
		if($complemento != null || $complemento != ""){
			$this->definirCampoPreenchido("Complemento", $complemento);
		}
		
		if($bairro != null || $bairro != ""){
			$this->definirCampoPreenchido("Bairro", $bairro);
		}
		
		if($cep != null || $cep != ""){
			$this->definirCampoPreenchido("Cep", $cep);
		}
		
		if($idEndereco != null){
			$this->definirCampoPreenchido("IdEndereco", $idEndereco);
		}
	}
}

?>